From 98bd89a61939c4b70b612825fc73c87b91ba77a1 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 16 Aug 2012 17:38:05 +0100 Subject: [PATCH] EPT/PoD: fix interaction with 1Gb pages When PoD got enabled to support 1Gb pages, ept_get_entry() didn't get updated to match - the assertion in there triggered, indicating that the call to p2m_pod_demand_populate() needed adjustment. Signed-off-by: Jan Beulich Acked-by: Tim Deegan Committed-by: Tim Deegan --- xen/arch/x86/mm/p2m-ept.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c index 49c044e59f..c964f542b4 100644 --- a/xen/arch/x86/mm/p2m-ept.c +++ b/xen/arch/x86/mm/p2m-ept.c @@ -521,13 +521,12 @@ static mfn_t ept_get_entry(struct p2m_domain *p2m, } /* Populate this superpage */ - ASSERT(i == 1); + ASSERT(i <= 2); index = gfn_remainder >> ( i * EPT_TABLE_ORDER); ept_entry = table + index; - if ( !p2m_pod_demand_populate(p2m, gfn, - PAGE_ORDER_2M, q) ) + if ( !p2m_pod_demand_populate(p2m, gfn, i * EPT_TABLE_ORDER, q) ) goto retry; else goto out; -- 2.30.2